+Sat Feb 20 19:44:36 1999 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwindow.c: added ::modal argument.
+ (gtk_window_hide): reset window->modal from the current grab state
+ (this is only relevant when grab_add/grab_remove is called on the
+ window by bypassing gtk_window_set_modal).
+ (gtk_window_remove_embedded_xid):
+ (gtk_window_add_embedded_xid): don't use g_print() but g_message()
+ within #ifdef G_ENABLE_DEBUG. when the hack got these functions
+ added (ChangeLog doesn't know them)?
+
Fri Feb 19 14:59:45 EST 1999 Sergey Panov <sipan@mit.edu>
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
+Sat Feb 20 19:44:36 1999 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwindow.c: added ::modal argument.
+ (gtk_window_hide): reset window->modal from the current grab state
+ (this is only relevant when grab_add/grab_remove is called on the
+ window by bypassing gtk_window_set_modal).
+ (gtk_window_remove_embedded_xid):
+ (gtk_window_add_embedded_xid): don't use g_print() but g_message()
+ within #ifdef G_ENABLE_DEBUG. when the hack got these functions
+ added (ChangeLog doesn't know them)?
+
Fri Feb 19 14:59:45 EST 1999 Sergey Panov <sipan@mit.edu>
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
+Sat Feb 20 19:44:36 1999 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwindow.c: added ::modal argument.
+ (gtk_window_hide): reset window->modal from the current grab state
+ (this is only relevant when grab_add/grab_remove is called on the
+ window by bypassing gtk_window_set_modal).
+ (gtk_window_remove_embedded_xid):
+ (gtk_window_add_embedded_xid): don't use g_print() but g_message()
+ within #ifdef G_ENABLE_DEBUG. when the hack got these functions
+ added (ChangeLog doesn't know them)?
+
Fri Feb 19 14:59:45 EST 1999 Sergey Panov <sipan@mit.edu>
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
+Sat Feb 20 19:44:36 1999 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwindow.c: added ::modal argument.
+ (gtk_window_hide): reset window->modal from the current grab state
+ (this is only relevant when grab_add/grab_remove is called on the
+ window by bypassing gtk_window_set_modal).
+ (gtk_window_remove_embedded_xid):
+ (gtk_window_add_embedded_xid): don't use g_print() but g_message()
+ within #ifdef G_ENABLE_DEBUG. when the hack got these functions
+ added (ChangeLog doesn't know them)?
+
Fri Feb 19 14:59:45 EST 1999 Sergey Panov <sipan@mit.edu>
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
+Sat Feb 20 19:44:36 1999 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwindow.c: added ::modal argument.
+ (gtk_window_hide): reset window->modal from the current grab state
+ (this is only relevant when grab_add/grab_remove is called on the
+ window by bypassing gtk_window_set_modal).
+ (gtk_window_remove_embedded_xid):
+ (gtk_window_add_embedded_xid): don't use g_print() but g_message()
+ within #ifdef G_ENABLE_DEBUG. when the hack got these functions
+ added (ChangeLog doesn't know them)?
+
Fri Feb 19 14:59:45 EST 1999 Sergey Panov <sipan@mit.edu>
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
+Sat Feb 20 19:44:36 1999 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwindow.c: added ::modal argument.
+ (gtk_window_hide): reset window->modal from the current grab state
+ (this is only relevant when grab_add/grab_remove is called on the
+ window by bypassing gtk_window_set_modal).
+ (gtk_window_remove_embedded_xid):
+ (gtk_window_add_embedded_xid): don't use g_print() but g_message()
+ within #ifdef G_ENABLE_DEBUG. when the hack got these functions
+ added (ChangeLog doesn't know them)?
+
Fri Feb 19 14:59:45 EST 1999 Sergey Panov <sipan@mit.edu>
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
+Sat Feb 20 19:44:36 1999 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwindow.c: added ::modal argument.
+ (gtk_window_hide): reset window->modal from the current grab state
+ (this is only relevant when grab_add/grab_remove is called on the
+ window by bypassing gtk_window_set_modal).
+ (gtk_window_remove_embedded_xid):
+ (gtk_window_add_embedded_xid): don't use g_print() but g_message()
+ within #ifdef G_ENABLE_DEBUG. when the hack got these functions
+ added (ChangeLog doesn't know them)?
+
Fri Feb 19 14:59:45 EST 1999 Sergey Panov <sipan@mit.edu>
* gtk/gtkrc,gtk/gtkrc.ja, gtk/gtkrc.ko,
ARG_AUTO_SHRINK,
ARG_ALLOW_SHRINK,
ARG_ALLOW_GROW,
+ ARG_MODAL,
ARG_WIN_POS
};
gtk_object_add_arg_type ("GtkWindow::auto_shrink", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_AUTO_SHRINK);
gtk_object_add_arg_type ("GtkWindow::allow_shrink", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_ALLOW_SHRINK);
gtk_object_add_arg_type ("GtkWindow::allow_grow", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_ALLOW_GROW);
+ gtk_object_add_arg_type ("GtkWindow::modal", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_MODAL);
gtk_object_add_arg_type ("GtkWindow::window_position", GTK_TYPE_WINDOW_POSITION, GTK_ARG_READWRITE, ARG_WIN_POS);
window_signals[SET_FOCUS] =
window->allow_grow = (GTK_VALUE_BOOL (*arg) != FALSE);
gtk_window_set_hints (GTK_WIDGET (window), >K_WIDGET (window)->requisition);
break;
+ case ARG_MODAL:
+ gtk_window_set_modal (window, GTK_VALUE_BOOL (*arg));
+ break;
case ARG_WIN_POS:
gtk_window_set_position (window, GTK_VALUE_ENUM (*arg));
break;
case ARG_ALLOW_GROW:
GTK_VALUE_BOOL (*arg) = window->allow_grow;
break;
+ case ARG_MODAL:
+ GTK_VALUE_BOOL (*arg) = window->modal;
+ break;
case ARG_WIN_POS:
GTK_VALUE_ENUM (*arg) = window->position;
break;
}
void
-gtk_window_set_modal (GtkWindow *window, gboolean modal)
+gtk_window_set_modal (GtkWindow *window,
+ gboolean modal)
{
g_return_if_fail (window != NULL);
g_return_if_fail (GTK_IS_WINDOW (window));
+ modal = modal != FALSE;
+
/* If the widget was showed already, adjust it's grab state */
- if (GTK_WIDGET_VISIBLE(GTK_WIDGET(window)))
+ if (GTK_WIDGET_VISIBLE (window) && window->modal != modal)
{
- if (window->modal && !modal)
- gtk_grab_remove (GTK_WIDGET(window));
- else if (!window->modal && modal)
- gtk_grab_add (GTK_WIDGET(window));
+ if (modal)
+ gtk_grab_add (GTK_WIDGET (window));
+ else
+ gtk_grab_remove (GTK_WIDGET (window));
}
window->modal = modal;
g_return_if_fail (window != NULL);
g_return_if_fail (GTK_IS_WINDOW (window));
-
- g_print ("add %#x\n", xid);
+
+#ifdef G_ENABLE_DEBUG
+ g_message ("add embedded xid %#x\n", xid);
+#endif
embedded_windows = gtk_object_get_data (GTK_OBJECT (window), "gtk-embedded");
if (embedded_windows)
g_return_if_fail (window != NULL);
g_return_if_fail (GTK_IS_WINDOW (window));
- g_print ("remove %#x\n", xid);
-
+#ifdef G_ENABLE_DEBUG
+ g_message ("remove embedded xid %#x\n", xid);
+#endif
+
embedded_windows = gtk_object_get_data (GTK_OBJECT (window), "gtk-embedded");
if (embedded_windows)
gtk_object_remove_no_notify_by_id (GTK_OBJECT (window),
gtk_container_check_resize (GTK_CONTAINER (widget));
gtk_widget_map (widget);
- if (GTK_WINDOW(widget)->modal)
- gtk_grab_add(widget);
-
+ if (GTK_WINDOW (widget)->modal)
+ gtk_grab_add (widget);
}
static void
gtk_window_hide (GtkWidget *widget)
{
+ GtkWindow *window;
+
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_WINDOW (widget));
+ window = GTK_WINDOW (widget);
+
GTK_WIDGET_UNSET_FLAGS (widget, GTK_VISIBLE);
gtk_widget_unmap (widget);
- if (GTK_WINDOW(widget)->modal)
- gtk_grab_remove(widget);
+ window->modal = GTK_WIDGET_HAS_GRAB (window);
+ if (window->modal)
+ gtk_grab_remove (widget);
}
static void
* gtk_widget_set_usize() overrides the requisition, so sets a minimum
* size, while this only sets the size requested from the WM.
*/
-void gtk_window_set_default_size (GtkWindow *window,
- gint width,
- gint height);
+void gtk_window_set_default_size (GtkWindow *window,
+ gint width,
+ gint height);
/* If window is set modal, input will be grabbed when show and released when hide */
void gtk_window_set_modal (GtkWindow *window,
- gboolean modal);
+ gboolean modal);
-void gtk_window_remove_embedded_xid (GtkWindow *window, guint xid);
-void gtk_window_add_embedded_xid (GtkWindow *window, guint xid);
+void gtk_window_remove_embedded_xid (GtkWindow *window,
+ guint xid);
+void gtk_window_add_embedded_xid (GtkWindow *window,
+ guint xid);
#ifdef __cplusplus
}